#include <stdlib.h>

#include "lib.h"
#include "log.h"

#include "slotguts.h"
#include "pharguts.h"
#include "pharcommon.h"
#include "slotspin.h"
#include "getrand.h"


bool8 
PharSlotGuts::isValidGuts()
{
    return ((getGutsId() >= PharCommon::GUTSMIN) && (getGutsId() <= PharCommon::GUTSMAX));
}

uint8
PharSlotGuts::classifyStops(uint8* stops,uint8 bet, uint8 line)
{
	uint8 result = PharCommon::EVT_LOSER;
	int numSerpent = 0;
	int numAnkh = 0;
	int numScarab = 0;
	int numMask = 0;
	int numWild = 0;

//	Log::msgInformation("PharSlotGuts::classifyStops- line %d", line+1);

    //  Do a preliminary run-through
    for ( uint8 i = 0; i < getReelCount(); i++ )
    {
        // Set the icon flags;
        switch ( getIcon(i, stops[i])->iconid )
        {
			case PharCommon::SERPENT:
//				Log::msgInformation("reel %d %s ", i, "SERPENT");
				++numSerpent;
				break;
			case PharCommon::ANKH:
//				Log::msgInformation("reel %d %s ", i, "ANKH");
				++numAnkh;
				break;
			case PharCommon::SCARAB:
//				Log::msgInformation("reel %d %s ", i, "SCARAB");
				++numScarab;
				break;
			case PharCommon::EYE:
//				Log::msgInformation("reel %d %s ", i, "EYE");
				++numWild;
				break;
			case PharCommon::MASK:
//				Log::msgInformation("reel %d %s ", i, "MASK");
				++numMask;
				break;
        }
    }

	if ((numMask + numWild) == 3)
	{
		if (line < 2)
		{
//			Log::msgInformation("result %s", "EVT_3MASK12");
			result = PharCommon::EVT_3MASK12;
		}
		else
		{
//			Log::msgInformation("result %s", "EVT_3MASK3");
			result = PharCommon::EVT_3MASK3;
		}
	}
	if (((numScarab + numWild) == 3) && (result == PharCommon::EVT_LOSER))
	{
//		Log::msgInformation("result %s", "EVT_3SCARAB");
		result = PharCommon::EVT_3SCARAB;
	}
//	if (((numAnkh + numWild) == 3) && (result == PharCommon::EVT_LOSER))
//	{
//		result = PharCommon::EVT_3ANKH;
//	}
	if (((numSerpent + numWild) == 3) && (result == PharCommon::EVT_LOSER))
	{
//		Log::msgInformation("result %s", "EVT_3SERPENT");
		result = PharCommon::EVT_3SERPENT;
	}
	if (((numSerpent + numWild) == 2) && (result == PharCommon::EVT_LOSER))
	{
//		Log::msgInformation("result %s", "EVT_2SERPENT");
		result = PharCommon::EVT_2SERPENT;
	}

	return result;
}


